package IO;
//OutputStream

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

/**
 * flush() 刷新缓冲区
 * 计算机读写内存的速度是比读写磁盘的速度快很多的.
 * 所以有些时候为了能够提高效率,就可以直接减少访问磁盘的次数
 * 使用缓冲区,就能很好的解决这个问题
 *
 * 缓冲区其实就是一段内存空间.(这个内存是OutputStream里面自带的)
 *
 * 当我们使用write方法来写数据的时候,并不是直接把数据写到磁盘上.而是先放到缓冲区中(内存中).
 * 如果缓冲区满了,或者手动调用flush,才会真的把数据写到磁盘上.
 *
 * 内存和磁盘之间的缓冲区,往往是一个内存空间.
 * CPU和内存之间,其实也有缓冲区.(L1,L2,L3cache)
 */

public class fileDemo6 {
    public static void main(String[] args) {
        //一旦按照OutoutStream的方式打开文件,就会把文件的原来的内容给清空掉.
        try(OutputStream outputStream = new FileOutputStream("./test.txt")){
            //写入一个字符
//            outputStream.write('x');

            //按照字节来写入
//            byte[] buffer = new byte[]{
//                    (byte)'a',(byte)'b',(byte)'c',(byte)'d'};
//            outputStream.write(buffer);

            //按照字符串来写入
            String s = "hello world";
            outputStream.write(s.getBytes());//将s转换为字节数组
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
